<?php
namespace app\admin\controller;

use app\admin\model\Admin as AdminModel;
use think\Db;
use think\Loader;

class Admin extends Base
{
    // 管理员列表
    public function index()
    {
        $list = AdminModel::order('id desc')->paginate(10);
        $this->assign('list',$list);
        return $this->fetch();
    }
    
    // 添加管理员
    public function add()
    {
        if(request()->isPost()){
            $data = [
                'username' => input('username'),
                'password' => md5(input('password')),
                'addtime'  => time(),
            ];
            // 验证信息
            $validate = Loader::validate('Admin');
            if(!$validate->scene('add')->check($data)){
               $this->error($validate->getError());
               die;
            }
            $result = Db::name('admin')->insert($data);
            if($result !== false){
                return $this->success('添加管理员成功！','index');
            }else{
                return $this->error('添加管理员失败！');
            }
            return;
        }

        return $this->fetch();
    }

    // 编辑管理员
    public function edit()
    {
        $id     = input('id');
        $admins = Db::name('admin')->find($id);

        if(request()->isPost()){
            $data = [
                'id'       => input('id'),
                'username' => input('username'),
            ];
            if(input('password')){
                $data['password'] = md5(input('password'));
            }else{
                $data['password'] = $admins['password'];
            }
            // 验证信息
            $validate = Loader::validate('Admin');
            if(!$validate->scene('eidt')->check($data)){
               $this->error($validate->getError());
               die;
            }
            $result = Db::name('admin')->update($data);
            if($result !== false){
                $this->success('修改管理员成功！','index');
            }else{
                $this->error('修改管理员失败！');
            }
            return;
        }

        $this->assign('admins',$admins);
        return $this->fetch();
    }
    
    // 删除 
    public function del()
    {
        $id = input('id');

        if($id !== 2){
            $result = Db::name('admin')->delete(input('id'));
            if($result !== false){
                $this->success('删除管理员成功！','index');
            }else{
                $this->error('删除管理员失败！');
            }
        }else{
            $this->error('初始化管理员不能删除！');
        }
    }

    // 退出
    public function logout(){
        session(null);
        $this->success('退出成功！','Login/index');
    }
}
